--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
scripts/dev-local.sh 3f7ef731b5effd9aa3a81eceea66fd6c2b56498c (3f7ef731) Text, 1.57 KB
T8b949e#!/usr/bin/env bash
T8b949e# Vite dev server (HMR) + MeshChat Python backend. Open http://localhost:5173 (or VITE_DEV_PORT).
Tffa657set -euo pipefail
Te6edf3ROOTTff7b72=Ta5d6ff"Tff7b72$(Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Tffd700${Te6edf3BASH_SOURCETb4b4b4[0]Tffd700}Ta5d6ff"Tff7b72)Ta5d6ff/..Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"
Tffa657cd Ta5d6ff"Te6edf3$ROOTTa5d6ff"
Tffa657export Te6edf3MESHCHAT_PORTTff7b72=Ta5d6ff"Tffd700${Te6edf3MESHCHAT_PORTTff7b72:-Te6edf38000Tffd700}Ta5d6ff"
Tffa657export Te6edf3E2E_BACKEND_PORTTff7b72=Ta5d6ff"Te6edf3$MESHCHAT_PORTTa5d6ff"
Te6edf3BE_PIDTff7b72=Ta5d6ff""
cleanupTff7b72(Tff7b72) Tff7b72{
Tff7b72if Tff7b72[Tff7b72[ -n Ta5d6ff"Te6edf3$BE_PIDTa5d6ff" Tff7b72]Tff7b72] Tff7b72&& Tffa657kill -0 Ta5d6ff"Te6edf3$BE_PIDTa5d6ff" T79c0ff2>/dev/nullTb4b4b4; Tff7b72then
Tffa657kill Ta5d6ff"Te6edf3$BE_PIDTa5d6ff" T79c0ff2>/dev/null Tff7b72|| Tffa657true
Tffa657wait Ta5d6ff"Te6edf3$BE_PIDTa5d6ff" T79c0ff2>/dev/null Tff7b72|| Tffa657true
Tff7b72fi
Tff7b72}
Tffa657trap cleanup EXIT INT TERM
uv run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1 --port Ta5d6ff"Te6edf3$MESHCHAT_PORTTa5d6ff" Tb4b4b4&
Te6edf3BE_PIDTff7b72=Te6edf3$!
Te6edf3BACKEND_URLTff7b72=Ta5d6ff"Ta5d6ffhttps://127.0.0.1:Tffd700${Te6edf3MESHCHAT_PORTTffd700}Ta5d6ff/api/v1/app/infoTa5d6ff"
Te6edf3BACKEND_WAIT_SECSTff7b72=Ta5d6ff"Tffd700${Te6edf3DEV_BACKEND_WAITTff7b72:-Te6edf3120Tffd700}Ta5d6ff"
Te6edf3BACKEND_POLL_INTERVALTff7b72=Ta5d6ff"Tffd700${Te6edf3DEV_BACKEND_POLL_INTERVALTff7b72:-Te6edf30Tb4b4b4.5Tffd700}Ta5d6ff"
Te6edf3deadlineTff7b72=Tff7b72$((Te6edf3SECONDS Tff7b72+ Te6edf3BACKEND_WAIT_SECSTff7b72))
Tffa657echo Ta5d6ff"Ta5d6ff[dev] Waiting for backend (HTTPS) on port Tffd700${Te6edf3MESHCHAT_PORTTffd700}Ta5d6ff...Ta5d6ff"
Tff7b72while Tff7b72(Tff7b72( SECONDS < deadline Tff7b72)Tff7b72)Tb4b4b4; Tff7b72do
Tff7b72if ! Tffa657kill -0 Ta5d6ff"Te6edf3$BE_PIDTa5d6ff" T79c0ff2>/dev/nullTb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"[dev] Backend process exited before becoming ready." >Tb4b4b4&T79c0ff2
Tffa657wait Ta5d6ff"Te6edf3$BE_PIDTa5d6ff" T79c0ff2>/dev/null Tff7b72|| Tffa657true
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72if curl -fsSk --max-time T79c0ff2 Ta5d6ff"Te6edf3$BACKEND_URLTa5d6ff" >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"[dev] Backend ready."
Tff7b72break
Tff7b72fi
sleep Ta5d6ff"Te6edf3$BACKEND_POLL_INTERVALTa5d6ff"
Tff7b72done
Tff7b72if ! curl -fsSk --max-time T79c0ff2 Ta5d6ff"Te6edf3$BACKEND_URLTa5d6ff" >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ff[dev] Backend did not respond on Tffd700${Te6edf3BACKEND_URLTffd700}Ta5d6ff within Tffd700${Te6edf3BACKEND_WAIT_SECSTffd700}Ta5d6ffs.Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Te6edf3VITE_HOSTTff7b72=Ta5d6ff"Tffd700${Te6edf3VITE_DEV_HOSTTff7b72:-Te6edf3127Tb4b4b4.0.0.1Tffd700}Ta5d6ff"
Te6edf3VITE_PORTTff7b72=Ta5d6ff"Tffd700${Te6edf3VITE_DEV_PORTTff7b72:-Te6edf35173Tffd700}Ta5d6ff"
pnpm run dev -- --host Ta5d6ff"Te6edf3$VITE_HOSTTa5d6ff" --port Ta5d6ff"Te6edf3$VITE_PORTTa5d6ff"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────